// 1. 自定义异常类（继承 Exception）
class StockNotEnoughException implements Exception {
  final String message;
  StockNotEnoughException(this.message);

  @override
  String toString() => "StockNotEnoughException: $message";
}

// 2. 模拟订单提交逻辑
void submitOrder(int requiredStock, int currentStock) {
  if (currentStock < requiredStock) {
    // 库存不足时，抛出自定义异常
    throw StockNotEnoughException("需要 $requiredStock 件，仅剩余 $currentStock 件");
  }
  print("订单提交成功！库存充足～");
}

void main() {
  print('Error表示系统级、无法恢复的严重错误');
  print('Exception表示业务级、可预期/可恢复的异常->根据需求自定义类');
  print('');
  print('自定义场景：用户提交订单需校验 “库存”，若库存不足，需抛出自定义异常提示业务错误');
  print('');
  try {
    // 模拟库存不足场景
    print('模拟库存不足的场景');
    submitOrder(5, 3);
  } on StockNotEnoughException catch (e) {
    // 捕获并处理自定义异常
    print("下单失败：$e");
  }
}
